In the past, models have been created to represent a wide variety of real-world situations or objects (i.e., model targets). One type of model is a block diagram model, in which elements of the target are represented with blocks, and in which most relationships between the elements are represented with lines between the blocks. In such diagrams, multiple blocks may be associated in various ways, such as a particular block being an aggregate of multiple other blocks.
Block diagram models can represent a wide variety of target types, including processes, physical structures, and logical structures. In the computer realm, block diagrams have been used to represent a wide variety of targets, such as databases composed of inter-related tables, inter-related data structures or objects to be used in conjunction with one or more computer programs, and the inter-related functions or modules of a computer program.
While block diagram models were originally created on paper, a variety of computer modeling programs have recently emerged that allow computer-based models to be created. Of these programs, recent ones allow the models to be created in a visual manner by using the user interface of the program to draw the model elements and their relationships (e.g., using various shape templates and a drag-and-drop metaphor). With such visual models, each model element and relationship typically has at least one visual representation so that the entire model can be easily displayed to a user. The process of creating or modifying such visual models is simplified by the ability to easily view the inter-related nature of the existing model elements, and to quickly draw new model elements and relationships.
A variety of types of modeling methodologies have been developed in which models can be expressed, with each computer modeling program typically supporting one or more such methodologies. These methodologies include Entity-Relationship (ER) modeling, Object-Role Modeling (ORM), and Unified Modeling Language (UML) modeling, as well as various other methodologies. Such modeling techniques and their uses are well known in the art, and are discussed in a wide variety of information sources including the following, which are hereby incorporated herein by reference: “Database Modeling & Design, Third Edition,” Toby J. Teorey, Morgan Kaufman Publishers, San Francisco, Calif. (1999); “Data Modeling,” G. Lawrence Sanders, Boyd And Fraser Publishing Company, An International Thomson Publishing Company, Danvers, Mass. (1995); and “Database Design for Smarties: Using UML for Data Modeling,” Robert J. Muller, Morgan Kaufman Publishers, San Francisco, Calif. (1999).
Computer-based visual models also provide benefits other than simplifying the process of creating or modifying such models. For example, when the target of such a model is also a computer-based construct (e.g., a data structure, database, object, program module, etc.), it may be possible to automatically generate the target from the computer-based visual model. In this manner, creation of such targets can be greatly simplified.
For a computer-based visual model to generate a computer-based target, however, the model may have to satisfy one or more conditions. In particular, the computer model may need to be complete so that each required model element and relationship of the model is fully specified. For example, if a logical model of a database is created in which the definition of a first table includes an attribute of a second table, then the second table may also need to be defined as part of the logical model in order to complete the model. Until the logical database model is complete, a physical database schema that reflects the logical model cannot typically be generated. The process of determining that a model is complete is referred to as verification. In addition to completeness, some models may also need to be valid in order to generate a computer-based target. For example, if constraints have been imposed on the model (e.g., that limit the types of allowed relationships for a particular model element), those constraints must typically be satisfied in order for the model to be valid. The process of determining that such a model is valid is referred to as validation.
Since computer-based visual models provide a variety of benefits, it is important that the creation of such models be simplified as much as possible. However, a variety of problems exist with the creation of such models using current techniques. For example, since the model elements of such models are inter-related, a particular model is typically specified as a single entity, often in a single file. However, as such models grow increasingly large, it is difficult for any given user to modify or extend the model, since it typically is necessary to understand the entire model in order to modify or extend even a small subset of the model. Moreover, if the model is specified as a single entity, only one user at a time may be able to access or modify the model. Such limitations hinder the creation of such models.
Another problem with the creation of computer-based visual models involves the re-use of portions of a model. Since a model is typically a single entity with inter-related model elements, the re-use of a portion of a model in another model can be difficult or impossible. If such re-use is even possible, it may involve a complicated manual procedure as follows: selecting the relevant subset of model elements and relationships from the first model; determining how the selected model elements in the subset are inter-related to model elements outside the subset; determining how the model elements in the subset need to be modified when they are removed from the first model in order to reflect or remove the inter-relationships with the model elements outside the subset; performing the modifications to the model elements in the subset; and then adding the modified model elements to another model so that inter-relationships between those model elements and the other model elements of the new model can be specified.
Thus, a need exists for simplifying the creation of computer-based visual models with inter-related model elements, particularly by multiple users. In addition, a need exists for simplifying the re-use of portions of such models. A facility that provides these and other benefits is described below.